package lanqiao;

import java.util.Scanner;

public class test9 {
    //1225 回文子串
    //中心扩展法
    //先从第一个字符开始往后找到中心点（奇数有一个字符）（偶数有两个字符）
    //然后从中心点往两边判断是否回文（左右双指针）
    //注意返回长度（R-L-1）；
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str = scan.next();
        int result = longestpalindroom(str);
        System.out.println(result);
    }
    //中心扩展法
    private static int longestpalindroom(String str) {
        if (str == null || str.isEmpty()) {
            return 0;
        }
        int max = 0;
        int max1 = 0;
        for (int i = 0; i < str.length(); i++) {
            //检查以str[i]为中心的奇数长度回文串
            int len1 = expandAroundCenter(str, i, i);
            //检查以str[i]和str[i+1]为中心的偶数长度回文串
            int len2 = expandAroundCenter(str, i, i + 1);
            //更新当前长度
           max1 = Math.max(len1, len2);
            max = Math.max(max, max1);
        }
        return max;
    }
    //从中心向两边扩展，找到回文串并返回
    private static int expandAroundCenter(String str, int left, int right) {
        //左右两个指针
        int L = left, R = right;
        while (L >= 0 && R < str.length() && str.charAt(L) == str.charAt(R)) {
            L--;
            R++;
        }
        //注意此时的L和R已超出了范围
        return R - L - 1;
    }
}
